Skip to content

perf: avoid line allocations when writing generated source - #6781

Merged
thomhurst merged 1 commit into
mainfrom
perf/generator-raw-text
Sep 11, 2026
Merged

thomhurst merged 1 commit into
mainfrom
perf/generator-raw-text

Conversation

@thomhurst

@thomhurst thomhurst commented Sep 11, 2026 •

Copy link
Copy Markdown
Owner

CodeWriter.AppendRaw splits every generated fragment into an array of line strings and trims each string before writing it. The per-class test-metadata pipeline calls it repeatedly while assembling generated source.

Scan the original string and append each line directly with StringBuilder.Append(string, startIndex, count). Defer blank lines until the next content line so leading/trailing blank lines remain omitted and interior blank lines remain intact. Preserve indentation, partial-line writes, CR/LF/CRLF handling, and Unicode trailing-whitespace trimming. Generated source is unchanged.

BenchmarkDotNet 0.15.8 results using actual baseline (b43fecac6d) and modified generator assemblies:

Workload Before mean After mean Before allocated After allocated
Write a 300-line generated fragment 25.726 μs 8.872 μs 66.34 KB 35.75 KB
TestMetadataGenerator, 10,000 bare tests 169.0 ms 110.4 ms 178.55 MB 162.47 MB
TestMetadataGenerator, 10,000 inline-data tests 239.5 ms 224.8 ms 384.87 MB 358.63 MB

The writer is about 2.9× faster and allocates 46% less in its focused workload. The complete metadata-generation passes allocate approximately 9% and 7% less. Timing varies in the larger workloads, and the inline-data confidence intervals overlap; its timing improvement is inconclusive. These measurements exclude parsing and compiling generated code, so they do not establish a whole-build speedup.

Validation:

  • 134 generator tests pass, with one existing skip and no snapshot changes.
  • All 12 new formatting cases pass on .NET 10 and .NET Framework 4.7.2.
  • 1,000 randomized sequences of three writer calls match the baseline output exactly.
  • Benchmark setup verifies identical generated filenames and source text for all 100 classes in each 10,000-test workload.
  • Roslyn 4.4 and 4.14 variant builds pass with zero warnings/errors.

The PR comment includes full benchmark reports, confidence intervals, source, and reproduction commands. Environment: Windows 11, i7-12700K, .NET 10.0.12, SDK 11.0.100-preview.7.26381.103; 15 measured iterations, 6 warmups, 1 launch. Generator passes use one full suite per iteration.

Summary by CodeRabbit

  • Bug Fixes

    • Preserved raw text formatting, including indentation, blank lines, trailing whitespace handling, partial lines, and mixed newline formats.
  • Tests

    • Added coverage for empty input, Unicode whitespace, formatting normalization, and combining raw text with subsequent writes.

@thomhurst
thomhurst deployed to Pull Requests September 11, 2026 15:21 — with GitHub Actions Active
@thomhurst
thomhurst deployed to Pull Requests September 11, 2026 15:21 — with GitHub Actions Active
@thomhurst
thomhurst deployed to Pull Requests September 11, 2026 15:21 — with GitHub Actions Active
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-11T15:24:12.390494Z 3819819 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: d252b8af-542d-4e42-97ba-21ecf167c267

📥 Commits

Reviewing files that changed from the base of the PR and between b43feca and 3819819.

📒 Files selected for processing (2)
  • src/TUnit.Core.SourceGenerator/CodeWriter.cs
  • tests/TUnit.Core.SourceGenerator.Tests/CodeWriterTests.cs

Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

CodeWriter.AppendRaw now scans input character by character. It preserves formatting behavior while handling whitespace, blank lines, indentation, partial lines, and mixed newline sequences. Tests cover these cases and empty input.

Changes

AppendRaw formatting

Layer / File(s) Summary
AppendRaw scanning and validation
src/TUnit.Core.SourceGenerator/CodeWriter.cs, tests/TUnit.Core.SourceGenerator.Tests/CodeWriterTests.cs
AppendRaw trims line whitespace, preserves interior blank lines, applies indentation, and avoids intermediate string splitting. Tests cover formatting, partial lines, subsequent writes, mixed newlines, and empty input.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~15 minutes

Change: Refactor

Merge Risk: ⚪ Minimal · up to 38198

The AppendRaw rewrite preserves its tested formatting and write-state behavior, with no current merge-blocking risk identified.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: reducing line allocations in generated-source writing. It matches the AppendRaw implementation changes and the stated performance objective…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch perf/generator-raw-text

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks each line with care
Blank rows wait in tidy air
Whitespace fades, interiors stay
Newlines march in one array
Tests hop after writes complete

Comment @coderabbitai help to get the list of available commands.

@thomhurst

Copy link
Copy Markdown
Owner Author

Reproduction and full evidence

The benchmark loads the actual generator assemblies into separate AssemblyLoadContext instances, sharing Roslyn 4.14.0. Module IDs:

  • Baseline b43fecac6d: 956c98a2-7b0e-4cb5-9431-1a7ede106632
  • Modified: 51c2ae90-69d0-4b8d-9ad2-98c2279f8b46

Build src/TUnit.Core.SourceGenerator/TUnit.Core.SourceGenerator.csproj -c Release at each revision and copy the resulting netstandard2.0/TUnit.Core.SourceGenerator.dll to before/ or after/ in a standalone RawGeneratorBench directory. Copy the repository's global.json and a locally built TUnit.Core.dll to the directory root. This run used the 99.99.99.0 Core assembly from the preceding generator experiment. Create the project and program below, then run:

dotnet run -c Release -- --filter '*' --job Dry
dotnet run -c Release --no-build -- --filter '*RawWriterBenchmarks*' --iterationCount 15 --warmupCount 6 --launchCount 1 --exporters json
dotnet run -c Release --no-build -- --filter '*MetadataGeneratorBenchmarks*' --iterationCount 15 --warmupCount 6 --launchCount 1 --invocationCount 1 --unrollFactor 1 --exporters json

The writer workload includes construction, writing 100 repeated three-line fragments, and converting the result to a string. Reflection and expression compilation occur only in setup; measured calls use compiled delegates. The generator workload has 100 classes with 100 tests each. Setup checks compilation errors, generator diagnostics, and exact equality of all 100 generated source files. Each measured operation runs the generator from the initial driver state; returned drivers are not retained, so it does not benchmark cached no-op generation. Parsing and initial compilation validation occur outside measurement.

Regression commands:

dotnet build src/TUnit.Core/TUnit.Core.csproj -c Release -f netstandard2.0
dotnet run --project tests/TUnit.Core.SourceGenerator.Tests -c Release -f net10.0
dotnet run --project tests/TUnit.Core.SourceGenerator.Tests -c Release -f net472 -- --treenode-filter '/*/*/CodeWriterTests/*'
dotnet build src/TUnit.Core.SourceGenerator.Roslyn414/TUnit.Core.SourceGenerator.Roslyn414.csproj -c Release
dotnet build src/TUnit.Core.SourceGenerator.Roslyn44/TUnit.Core.SourceGenerator.Roslyn44.csproj -c Release

Results: 134 passed / 1 existing skip in the complete generator suite; 12 passed on .NET Framework 4.7.2; both variant builds passed without warnings or errors. Existing snapshots remained unchanged. The additional differential script below checked 1,000 randomized sequences against both actual assemblies, including different indentation levels, prefixes, suffixes, and Unicode whitespace; all outputs matched exactly.

Place Verify-RawWriter.ps1 alongside the RawGeneratorBench directory and run it with pwsh.

Writer results:


BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.9168/25H2/2025Update/HudsonValley2)
12th Gen Intel Core i7-12700K 3.60GHz, 1 CPU, 20 logical and 12 physical cores
.NET SDK 11.0.100-preview.7.26381.103
  [Host]     : .NET 10.0.12 (10.0.12, 10.0.1226.42308), X64 RyuJIT x86-64-v3
  Job-OWOXYI : .NET 10.0.12 (10.0.12, 10.0.1226.42308), X64 RyuJIT x86-64-v3

IterationCount=15  LaunchCount=1  WarmupCount=6  

Method Mean Error StdDev Ratio RatioSD Gen0 Gen1 Allocated Alloc Ratio
Before 25.726 μs 0.5690 μs 0.5323 μs 1.00 0.03 5.1880 0.6714 66.34 KB 1.00
After 8.872 μs 0.4066 μs 0.3804 μs 0.34 0.02 2.7924 0.1984 35.75 KB 0.54

Generator results:


BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.9168/25H2/2025Update/HudsonValley2)
12th Gen Intel Core i7-12700K 3.60GHz, 1 CPU, 20 logical and 12 physical cores
.NET SDK 11.0.100-preview.7.26381.103
  [Host]     : .NET 10.0.12 (10.0.12, 10.0.1226.42308), X64 RyuJIT x86-64-v3
  Job-NOAUNV : .NET 10.0.12 (10.0.12, 10.0.1226.42308), X64 RyuJIT x86-64-v3

InvocationCount=1  IterationCount=15  LaunchCount=1  
UnrollFactor=1  WarmupCount=6  

Method Scenario Mean Error StdDev Ratio RatioSD Gen0 Gen1 Gen2 Allocated Alloc Ratio
Before Bare 169.0 ms 31.46 ms 29.43 ms 1.03 0.24 12000.0000 5000.0000 1000.0000 178.55 MB 1.00
After Bare 110.4 ms 3.28 ms 2.56 ms 0.67 0.11 11000.0000 5000.0000 1000.0000 162.47 MB 0.91
Before InlineData 239.5 ms 37.29 ms 33.06 ms 1.02 0.18 27000.0000 7000.0000 1000.0000 384.87 MB 1.00
After InlineData 224.8 ms 24.77 ms 21.96 ms 0.95 0.14 26000.0000 9000.0000 2000.0000 358.63 MB 0.93
Benchmark project and source
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="BenchmarkDotNet" Version="0.15.8" />
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
    <Reference Include="TUnit.Core"><HintPath>TUnit.Core.dll</HintPath></Reference>
    <None Update="before/*.dll;after/*.dll" CopyToOutputDirectory="PreserveNewest" />
  </ItemGroup>
</Project>
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using System.Linq.Expressions;
using System.Reflection;
using System.Runtime.Loader;
using System.Text;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public static class Versions
{
    public static Assembly Load(string name)
    {
        var assembly = new AssemblyLoadContext(name).LoadFromAssemblyPath(
            Path.Combine(AppContext.BaseDirectory, name, "TUnit.Core.SourceGenerator.dll"));
        Console.WriteLine($"{name} MVID: {assembly.ManifestModule.ModuleVersionId}");
        return assembly;
    }
}

[MemoryDiagnoser]
public class MetadataGeneratorBenchmarks
{
    [Params("Bare", "InlineData")]
    public string Scenario { get; set; } = "Bare";
    private CSharpCompilation _compilation = null!;
    private GeneratorDriver _before = null!;
    private GeneratorDriver _after = null!;

    [GlobalSetup]
    public void Setup()
    {
        var trees = new List<SyntaxTree>();
        for (var c = 0; c < 100; c++)
        {
            var source = new StringBuilder("using System; using TUnit.Core; public class Tests" + c + " {");
            for (var m = 0; m < 100; m++)
            {
                source.Append("[Test]");
                source.Append(Scenario == "InlineData" ? "[Arguments(42)] public void Test" : "public void Test");
                source.Append(m).Append(Scenario == "InlineData" ? "(int value) {" : "() {");
                source.Append("int x = 42; if (x * x + 1 != 1765) throw new Exception(); }");
            }
            source.Append('}');
            trees.Add(CSharpSyntaxTree.ParseText(source.ToString()));
        }
        var references = ((string)AppContext.GetData("TRUSTED_PLATFORM_ASSEMBLIES")!).Split(Path.PathSeparator)
            .Select(p => MetadataReference.CreateFromFile(p)).ToList();
        references.Add(MetadataReference.CreateFromFile(typeof(TUnit.Core.TestAttribute).Assembly.Location));
        _compilation = CSharpCompilation.Create("SyntheticSuite", trees, references,
            new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
        var errors = _compilation.GetDiagnostics().Where(d => d.Severity == DiagnosticSeverity.Error).ToArray();
        if (errors.Length != 0) throw new InvalidOperationException(string.Join("\n", errors.Select(e => e.ToString())));
        _before = LoadDriver("before");
        _after = LoadDriver("after");
        var beforeResult = _before.RunGenerators(_compilation).GetRunResult();
        var afterResult = _after.RunGenerators(_compilation).GetRunResult();
        if (beforeResult.Diagnostics.Concat(afterResult.Diagnostics).Any(d => d.Severity == DiagnosticSeverity.Error))
            throw new InvalidOperationException("Generator diagnostics");
        var beforeSources = beforeResult.Results.Single().GeneratedSources;
        var afterSources = afterResult.Results.Single().GeneratedSources;
        if (beforeSources.Length != 100 || afterSources.Length != 100 ||
            !beforeSources.Select(s => (s.HintName, s.SourceText.ToString()))
                .SequenceEqual(afterSources.Select(s => (s.HintName, s.SourceText.ToString()))))
            throw new InvalidOperationException("Generated sources differ or are missing.");
    }

    private static GeneratorDriver LoadDriver(string name) => CSharpGeneratorDriver.Create(
        (IIncrementalGenerator)Activator.CreateInstance(Versions.Load(name).GetType(
            "TUnit.Core.SourceGenerator.Generators.TestMetadataGenerator")!)!);

    [Benchmark(Baseline = true)]
    public GeneratorDriver Before() => _before.RunGenerators(_compilation);

    [Benchmark]
    public GeneratorDriver After() => _after.RunGenerators(_compilation);
}

[MemoryDiagnoser]
public class RawWriterBenchmarks
{
    private Func<string, string> _before = null!;
    private Func<string, string> _after = null!;
    private string _text = null!;

    [GlobalSetup]
    public void Setup()
    {
        _before = LoadWriter("before");
        _after = LoadWriter("after");
        _text = string.Concat(Enumerable.Repeat("    new TestEntry(methodIndex: 42,\r\n        attributes: __Attributes),   \r\n\r\n", 100));
        if (_before(_text) != _after(_text)) throw new InvalidOperationException("Writer output differs.");
    }

    private static Func<string, string> LoadWriter(string name)
    {
        var type = Versions.Load(name).GetType("TUnit.Core.SourceGenerator.CodeWriter")!;
        var text = Expression.Parameter(typeof(string));
        var writer = Expression.Variable(type);
        var body = Expression.Block([writer],
            Expression.Assign(writer, Expression.New(type.GetConstructor([typeof(string), typeof(bool)])!,
                Expression.Constant("    "), Expression.Constant(false))),
            Expression.Call(writer, type.GetMethod("Indent")!),
            Expression.Call(writer, type.GetMethod("AppendRaw")!, text),
            Expression.Call(writer, type.GetMethod("ToString")!));
        return Expression.Lambda<Func<string, string>>(body, text).Compile();
    }

    [Benchmark(Baseline = true)]
    public string Before() => _before(_text);

    [Benchmark]
    public string After() => _after(_text);
}
Differential verification script
$ErrorActionPreference = 'Stop'
$types = foreach ($version in @('before', 'after')) {
    $context = [System.Runtime.Loader.AssemblyLoadContext]::new($version)
    $assembly = $context.LoadFromAssemblyPath((Join-Path $PSScriptRoot "RawGeneratorBench/$version/TUnit.Core.SourceGenerator.dll"))
    $assembly.GetType('TUnit.Core.SourceGenerator.CodeWriter')
}
$random = [Random]::new(20260911)
$characters = [char[]]@('a', 'b', ' ', "`t", "`r", "`n", [char]0x85, [char]0xa0, [char]0x2003, [char]0x2028, [char]0)
for ($case = 0; $case -lt 1000; $case++) {
    $indent = if ($case % 2) { '--' } else { '    ' }
    $writers = foreach ($type in $types) {
        [Activator]::CreateInstance($type, [object[]]@($indent, $false))
    }
    foreach ($writer in $writers) {
        $writer.SetIndentLevel($case % 4) | Out-Null
        if ($case % 3) { $writer.Append('prefix:') | Out-Null }
    }
    for ($fragment = 0; $fragment -lt 3; $fragment++) {
        $buffer = [char[]]::new($random.Next(0, 100))
        for ($i = 0; $i -lt $buffer.Length; $i++) {
            $buffer[$i] = $characters[$random.Next($characters.Length)]
        }
        $inputText = [string]::new($buffer)
        foreach ($writer in $writers) { $writer.AppendRaw($inputText) | Out-Null }
    }
    foreach ($writer in $writers) { $writer.Append('tail') | Out-Null }
    if (-not [string]::Equals($writers[0].ToString(), $writers[1].ToString(), [StringComparison]::Ordinal)) {
        throw "Output differs in randomized case $case."
    }
}
Write-Output 'PASS: 1,000 randomized sequences of three AppendRaw calls match baseline byte-for-byte.'

@thomhurst
thomhurst enabled auto-merge (squash) September 11, 2026 15:25
@greptile-apps

greptile-apps Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR optimizes generated-source writing by scanning multiline text directly instead of allocating an array and individual trimmed strings.

  • Appends source slices directly to the existing StringBuilder.
  • Defers blank lines to preserve interior whitespace while omitting leading and trailing blank lines.
  • Adds coverage for mixed newline formats, Unicode whitespace, partial-line writes, indentation, and sequential calls.

Confidence Score: 5/5

The PR appears safe to merge, with no actionable correctness, compatibility, security, or repository-rule issues identified.

The optimized implementation maintains the existing writer-state and formatting contracts, uses APIs supported by every configured generator target, and is covered by targeted cross-framework tests.

Important Files Changed

Filename Overview
src/TUnit.Core.SourceGenerator/CodeWriter.cs Replaces allocation-heavy splitting in AppendRaw with behaviorally equivalent indexed scanning and direct appends.
tests/TUnit.Core.SourceGenerator.Tests/CodeWriterTests.cs Adds focused regression coverage for formatting, writer state, newline variants, and whitespace edge cases.

Reviews (1): Last reviewed commit: "perf: avoid splitting raw generated sour..." | Re-trigger Greptile

@thomhurst
thomhurst merged commit f9a55a8 into main Sep 11, 2026
14 checks passed
@thomhurst
thomhurst deleted the perf/generator-raw-text branch September 11, 2026 15:52
github-actions Bot pushed a commit to BenjaminMichaelis/DotnetTemplates that referenced this pull request Oct 5, 2026
Updated
[Microsoft.Testing.Extensions.CodeCoverage](https://github.com/microsoft/codecoverage)
from 18.7.0 to 18.11.2.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Testing.Extensions.CodeCoverage's
releases](https://github.com/microsoft/codecoverage/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/microsoft/codecoverage/commits).
</details>

Updated [TUnit](https://github.com/thomhurst/TUnit) from 1.45.29 to
1.72.16.

<details>
<summary>Release notes</summary>

_Sourced from [TUnit's
releases](https://github.com/thomhurst/TUnit/releases)._

## 1.72.16

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.16 -->

## What's Changed
### Other Changes
* docs: add Moq, NSubstitute, and FakeItEasy migration guides for
TUnit.Mocks by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6951
### Dependencies
* chore(deps): update dependency azure.storage.blobs to 12.30.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6945
* chore(deps): update tunit to 1.72.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6946
* chore(deps): update dependency mockolate to 3.5.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6949


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.72.10...v1.72.16

## 1.72.10

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.10 -->

## What's Changed
### Other Changes
* fix(source-gen): adapt ValueTask<T> test results by @​zion-sati in
https://github.com/thomhurst/TUnit/pull/6930
### Dependencies
* chore(deps): update tunit to 1.72.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6941
* chore(deps): update aspire to 13.6.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6940
* chore(deps): update verify to 33.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6943
* chore(deps): update dependency awssdk.sqs to 4.0.100.15 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6944

## New Contributors
* @​zion-sati made their first contribution in
https://github.com/thomhurst/TUnit/pull/6930

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.72.4...v1.72.10

## 1.72.4

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.4 -->

## What's Changed
### Other Changes
* fix(source-gen): stop parameter resolver keeping every non-public
test-class method (IL2111) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6937
### Dependencies
* chore(deps): update tunit to 1.72.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6934


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.72.0...v1.72.4

## 1.72.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.0 -->

## What's Changed
### Other Changes
* perf(source-gen): resolve parameter reflection info through a shared
runtime helper by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6923
* perf(analyzers): trim remaining analyzer hot-path symbol lookups and
binds by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6928
* perf(mocks): move shared MockCall wrapper plumbing into runtime base
classes by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6929
* perf(source-gen): close incremental caching gaps in static property
and property injection generators by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6925
* perf(source-gen): stop InfrastructureGenerator pinning an old
Compilation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6926
* perf(assertions-analyzers): cache assertion symbols and cut per-call
work by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6927
* perf(source-gen): emit hooks per class with direct, non-async bodies
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6924
* test: fix flaky ObjectInitializer continuation-thread test by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6932
* fix: CI flakes from leaked hook contexts, ActivityCollector race and
Repro5700 rendezvous by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6933
* fix(aspnetcore): honor WebApplicationFactoryClientOptions in
CreateClient by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6931
### Dependencies
* chore(deps): update tunit to 1.71.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6920


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.71.0...v1.72.0

## 1.71.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.71.0 -->

## What's Changed
### Other Changes
* perf: lighter per-test trace bookkeeping for the HTML report (-12%
allocations at 10k tests) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6910
* perf(html-report): parallel report serialization + optimized hot
writers (-26% end-of-session time) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6911
* perf: emit source-generated test types after user code (Defender scan
5s → 0.2s at 10k tests) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6908
* perf(source-gen): bound generated test-entry methods (data-driven
startup JIT -45%) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6909
* fix: avoid blocking waiting callers during IAsyncInitializer
initialization by @​Sing303 in
https://github.com/thomhurst/TUnit/pull/6906
* perf(analyzers): cut binding and symbol lookups in analyzer hot paths
(TUnit.Analyzers -89% on TestProject) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6917
* fix(source-gen): model equality covers every emitted field;
infrastructure refreshes on reference changes by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6912
* perf(mocks): memoize generator discovery per compilation and decouple
emitted source from call-site locations by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6913
* fix(packaging): skip the source generator when disabled and replace
the broken Polyfill injection by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6915
* refactor(analyzers): address review feedback from #​6917 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6919
* perf(source-gen): remove whole-compilation scans from static property,
property injection and AOT converter generators by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6914
* perf(assertions-source-gen): make assertion generators properly
incremental by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6916
* perf(source-gen): make TestMetadataGenerator pipeline values equatable
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6918
### Dependencies
* chore(deps): update dependency polyfill to 11.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6900
* chore(deps): update dependency polyfill to 11.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6899
* chore(deps): update dependency tunit.aspire to 1.7* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6901
* chore(deps): update tunit to 1.7* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6902
* chore(deps): update dependency coverlet.collector to 10.1.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6905
* chore(deps): update dependency nunit to v5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6903


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.70.1...v1.71.0

## 1.70.1

<!-- Release notes generated using configuration in .github/release.yml
at v1.70.1 -->

## What's Changed
### Other Changes
* fix: don't run DedicatedThreadExecutor continuations inline on the
dedicated thread by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6898


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.70.0...v1.70.1

## 1.70.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.70.0 -->

## What's Changed
### Other Changes
* feat: clear parallel constraints and limiter during test registration
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6897
* fix(mocks): emit valid lambdas for Task/ValueTask-returning delegate
mocks by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6896
### Dependencies
* chore(deps): update tunit to 1.69.24 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6893


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.24...v1.70.0

## 1.69.24

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.24 -->

## What's Changed
### Other Changes
* fix: skip Ctrl+C handling where Console.CancelKeyPress is unsupported
by @​glennawatson in https://github.com/thomhurst/TUnit/pull/6889
### Dependencies
* chore(deps): update verify to 33.1.5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6891
* chore(deps): update tunit to 1.69.21 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6890


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.21...v1.69.24

## 1.69.21

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.21 -->

## What's Changed
### Other Changes
* fix: preserve JUnit results after session cancellation by @​Sing303 in
https://github.com/thomhurst/TUnit/pull/6882
* feat: warn when setup hooks pass the test execution token by @​Sing303
in https://github.com/thomhurst/TUnit/pull/6883
* fix: complete DedicatedThreadExecutor tests only after CleanUp()
returns by @​glennawatson in
https://github.com/thomhurst/TUnit/pull/6886
### Dependencies
* chore(deps): update tunit to 1.69.16 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6881

## New Contributors
* @​glennawatson made their first contribution in
https://github.com/thomhurst/TUnit/pull/6886

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.16...v1.69.21

## 1.69.16

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.16 -->

## What's Changed
### Other Changes
* fix: preserve TRX results when session cleanup fails by @​Sing303 in
https://github.com/thomhurst/TUnit/pull/6879
### Dependencies
* chore(deps): update tunit to 1.69.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6864
* chore(deps): update dependency messagepack to 3.1.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6866
* chore(deps): update dependency dompurify to v3.4.16 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6867
* chore(deps): update dependency serialize-javascript to v7.1.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6868
* chore(deps): update dependency azure.data.tables to 12.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6870
* chore(deps): update dependency microsoft.playwright to 1.63.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6871
* chore(deps): update verify to 33.1.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6872
* chore(deps): update dependency verify.tool to v0.9.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6873
* chore(deps): update verify to 33.1.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6874
* chore(deps): update verify to 33.1.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6876
* chore(deps): update dependency moq to 4.21.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6877
* chore(deps): bump image-size from 2.0.2 to 2.0.4 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6878

## New Contributors
* @​Sing303 made their first contribution in
https://github.com/thomhurst/TUnit/pull/6879

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.0...v1.69.16

## 1.69.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.0 -->

## What's Changed
### Other Changes
* feat(templates): add enableDotCover flag (#​6714) by @​ForNeVeR in
https://github.com/thomhurst/TUnit/pull/6844
* fix: don't request semantic models for attribute syntax from other
compilations (DevKit crash) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6855
* fix(ci): restore net472 PublicAPI tests on Windows by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6857
* perf(html-report): stream report JSON through pooled chunks and
overlap sidecar serialization by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6860
* chore(renovate): cap Microsoft.Build packages below 18.10.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6863
* perf: shrink generated per-class test source static constructors (~40%
less startup JIT) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6859
* refactor: remove unreachable decimal source-text path from
GenerateAttributeInstantiation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6856
* perf: cut per-test allocations in discovery and execution (-61% at 10k
tests) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6861
* perf: stop hashing per-test event receivers during registration
(data-driven tests 2.9x faster at 10k) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6858
* perf(analyzers): cut TUnit analyzer build time ~60% on large test
projects by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6862
### Dependencies
* chore(deps): update opentelemetry to 1.19.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6838
* chore(deps): update dependency opentelemetry.instrumentation.runtime
to 1.19.0 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6840
* chore(deps): update tunit to 1.68.17 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6839
* chore(deps): update verify to 33.1.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6843
* chore(deps): update verify to 33.1.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6847
* chore(deps): update opentelemetry to 1.19.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6850
* chore(deps): update dependency grpc.core.api to 2.84.0 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6851
* chore(deps): update dependency stackexchange.redis to 3.3.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6853
* chore(deps): update dependency polyfill to 11.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6841
* chore(deps): update dependency polyfill to 11.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6842

## New Contributors
* @​ForNeVeR made their first contribution in
https://github.com/thomhurst/TUnit/pull/6844

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.68.17...v1.69.0

## 1.68.17

<!-- Release notes generated using configuration in .github/release.yml
at v1.68.17 -->

## What's Changed
### Other Changes
* fix(mocks): emit init accessors for init-only properties and indexers
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6833
* fix(mocks): let one type be mocked regularly and wrapped in one
compilation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6835
* fix(mocks): keep editors in sync with publicized project references
(#​6836) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6837
### Dependencies
* chore(deps): update tunit to 1.68.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6824
* chore(deps): update mstest to 4.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6825
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6717
* chore(deps): update verify to v33 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6794
* chore(deps): update dependency stackexchange.redis to 3.2.15 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6827
* chore(deps): update dependency messagepack to 3.1.9 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6828
* chore(deps): update dependency stackexchange.redis to 3.3.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6831
* chore(deps): update opentelemetry to 1.19.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6832


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.68.4...v1.68.17

## 1.68.4

<!-- Release notes generated using configuration in .github/release.yml
at v1.68.4 -->

## What's Changed
### Other Changes
* Add installable TUnit documentation routing skill by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6823
### Dependencies
* chore(deps): update tunit to 1.68.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6819
* chore(deps): update dependency mockolate to 3.5.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6822


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.68.0...v1.68.4

## 1.68.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.68.0 -->

## What's Changed
### Other Changes
* chore: switch to fillable checkboxes for issue templates by
@​radmorecameron in https://github.com/thomhurst/TUnit/pull/6795
* Add functionality to TUnit.Playwright to easily record videos for
tests by @​dahlsailrunner in
https://github.com/thomhurst/TUnit/pull/6799
* docs: clarify thread pool usage in parallel tests by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6817
* Fix mocking events with ref struct arguments by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6814
* Fix TUnit0023 false positives for disposal through casts by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6818
### Dependencies
* chore(deps): update tunit to 1.67.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6793
* chore(deps): update xunit to 4.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6796
* chore(deps): update dependency bunit to 2.11.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6800
* chore(deps): update dependency stackexchange.redis to 3.2.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6801
* chore(deps): update dependency polly to 8.8.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6805
* chore(deps): update dependency dotnet-sdk to v10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6803
* chore(deps): update dependency masstransit to 9.2.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6806
* chore(deps): update dependency awssdk.sqs to 4.0.100.14 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6807
* chore(deps): update dependency brace-expansion to v5.0.12 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6809
* chore(deps): update dependency microsoft.net.test.sdk to 18.10.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6811
* chore(deps): update aspire to 13.5.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6813

## New Contributors
* @​radmorecameron made their first contribution in
https://github.com/thomhurst/TUnit/pull/6795
* @​dahlsailrunner made their first contribution in
https://github.com/thomhurst/TUnit/pull/6799

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.67.0...v1.68.0

## 1.67.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.67.0 -->

## What's Changed
### Other Changes
* docs: clarified and updated attributes comparison for xUnit 3 by
@​304NotModified in https://github.com/thomhurst/TUnit/pull/6774
* perf: read inline argument metadata without reflection by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6778
* perf: limit converter discovery to declarations by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6779
* perf: skip teardown analysis when no disposable members need cleanup
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6780
* perf: avoid line allocations when writing generated source by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6781
* perf: avoid formatting interface names for data-source checks by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6782
* perf: skip unannotated property data-source candidates by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6784
* fix: fold inner exceptions into IDE test failure output by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6777
* perf: reuse argument-free attribute initializer text by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6788
* perf: extract test metadata in attribute transforms by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6789
* perf: skip receiver registration for ordinary objects by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6790
* perf: cache reporting properties on test contexts by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6791
* fix: preserve executor registration, limiter precedence, and timeout
classification by @​Nice3point in
https://github.com/thomhurst/TUnit/pull/6768
### Dependencies
* chore(deps): update tunit to 1.66.27 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6742
* chore(deps): update dependency bunit to 2.10.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6745
* chore(deps): update dependency imposter to 0.1.11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6744
* chore(deps): update dependency microsoft.kiota.abstractions to 2.1.2
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6747
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.401 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6750
* chore(deps): update dependency fsharp.core to 10.1.401 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6748
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.401 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6751
* chore(deps): update dependency system.commandline to 2.0.12 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6752
* chore(deps): update dependency dotnet-sdk to v10.0.401 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6754
* chore(deps): update microsoft.extensions to 10.0.12 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6755
* chore(deps): update microsoft.aspnetcore to 10.0.12 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6753
* chore(deps): update dependency microsoft.entityframeworkcore to
10.0.12 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6749
* chore(deps): update mcr.microsoft.com/dotnet/sdk docker tag to v11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6756
* chore(deps): update dependency microsoft.net.test.sdk to 18.10.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6761
* chore(deps): update microsoft.extensions to 10.10.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6762
* chore(deps): update react to ^19.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6763
* chore(deps): update dependency awssdk.sqs to 4.0.100.13 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6764
* chore(deps): update dependency polyfill to 11.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6765
* chore(deps): update dependency polyfill to 11.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6766
* chore(deps): update dependency stackexchange.redis to 3.2.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6769
* chore(deps): update dependency microsoft.net.stringtools to 18.10.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6771
* chore(deps): update dependency dotnet-trace to v10.0.745401 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6773
* chore(deps): bump colord from 2.9.3 to 2.10.0 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6759
* chore(deps): bump joi from 17.13.4 to 17.13.7 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6758
* chore(deps): bump js-yaml from 4.3.1 to 4.3.2 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6757
* chore(deps): update dependency yaml to v2.9.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6785
* chore(deps): update verify to 32.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6786
* chore(deps): update dependency nunit.analyzers to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6792

## New Contributors
* @​304NotModified made their first contribution in
https://github.com/thomhurst/TUnit/pull/6774
* @​Nice3point made their first contribution in
https://github.com/thomhurst/TUnit/pull/6768
 ... (truncated)

## 1.66.27

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.27 -->

## What's Changed
### Other Changes
* fix(mocks): initialize mock state before base constructor callbacks by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6741
### Dependencies
* chore(deps): update tunit to 1.66.16 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6733
* chore(deps): update dependency testcontainers.postgresql to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6736
* chore(deps): update dependency testcontainers.redis to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6737
* chore(deps): update dependency testcontainers.kafka to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6735
* chore(deps): update dependency mockolate to 3.5.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6739


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.16...v1.66.27

## 1.66.16

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.16 -->

## What's Changed
### Other Changes
* fix: isolated name is lowercase (#​6727) by @​koryphaee in
https://github.com/thomhurst/TUnit/pull/6728
* fix: preserve concurrent Assert.Multiple failures by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6730
* fix: preserve original HTTP mock request content by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6731
### Dependencies
* chore(deps): update tunit to 1.66.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6726
* chore(deps): update dependency dompurify to v3.4.15 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6732


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.10...v1.66.16

## 1.66.10

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.10 -->

## What's Changed
### Other Changes
* fix: restore null suppression for built-in assertion methods by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6725
### Dependencies
* chore(deps): update tunit to 1.66.8 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6724


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.8...v1.66.10

## 1.66.8

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.8 -->

## What's Changed
### Other Changes
* fix(ci): make issue triage work for external reporters by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6720
* fix(ci): run code review on pull requests from forks by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6722
* fix: suppress nullability warnings after Should NotBeNull assertions
by @​mvanhorn in https://github.com/thomhurst/TUnit/pull/6700
* fix: Avoid HTML report CLI option clashes by @​mvanhorn in
https://github.com/thomhurst/TUnit/pull/6677
### Dependencies
* chore(deps): update tunit to 1.66.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6719
* chore(deps): update dependency microsoft.kiota.abstractions to 2.1.1
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6721
* chore(deps): update dependency awssdk.sqs to 4.0.100.12 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6723


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.0...v1.66.8

## 1.66.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.0 -->

## What's Changed
### Other Changes
* Compile all C# documentation snippets by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6695
* Fix `Type` assignability assertions to evaluate represented type (not
`RuntimeType`) by @​thomhurst with @​Copilot in
https://github.com/thomhurst/TUnit/pull/6711
* Clarify ClassDataSource constructor requirements by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6716
* Add programmatic HTML reporting settings by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6699
* Fix timeout cancellation diagnostics by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6715
### Dependencies
* chore(deps): update tunit to 1.65.68 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6682
* chore(deps): update dependency verify.tool to v0.9.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6683
* chore(deps): update dependency mockolate to 3.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6685
* chore(deps): update dependency serialize-javascript to v7.1.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6687
* chore(deps): update dependency qs to v6.16.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6691
* chore(deps): update dependency system.reactive to v7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6696
* chore(deps): update dependency imposter to 0.1.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6701
* chore(deps): update dependency microsoft.kiota.abstractions to 2.1.0
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6704
* chore(deps): update mstest to 4.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6705
* chore(deps): update dependency dotnet-trace to v10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6706
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6703
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6713
* chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6707


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.68...v1.66.0

## 1.65.68

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.68 -->

## What's Changed
### Other Changes
* fix: convert foreign array element-wise for trailing array parameter
(#​6678) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6681
### Dependencies
* chore(deps): update tunit to 1.65.63 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6672
* chore(deps): update aspire to 13.5.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6674
* chore(deps): update verify to v32 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6680


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.63...v1.65.68

## 1.65.63

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.63 -->

## What's Changed
### Other Changes
* Fix mocking hidden generic interface methods by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6671
### Dependencies
* chore(deps): update aspire to 13.5.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6655
* chore(deps): update opentelemetry to 1.18.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6653
* chore(deps): update dependency azure.data.tables to 12.12.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6654
* chore(deps): update tunit to 1.65.51 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6661
* chore(deps): update dependency svgo to v4.1.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6663
* chore(deps): update dependency picomatch to v4.0.7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6664
* chore(deps): update dependency awssdk.sqs to 4.0.100.11 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6666
* chore(deps): update dependency nunit3testadapter to 6.3.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6667
* chore(deps): update dependency azure.storage.blobs to 12.29.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6668


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.51...v1.65.63

## 1.65.51

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.51 -->

## What's Changed
### Other Changes
* Compile public documentation snippets by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6652
* Fix covariant property override discovery by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6660
### Dependencies
* chore(deps): update tunit to 1.65.38 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6644
* chore(deps): update dependency fscheck to 3.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6646
* chore(deps): update dependency awssdk.sqs to 4.0.100.10 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6647
* chore(deps): update aspire to 13.5.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6648
* chore(deps): update dependency stackexchange.redis to 3.1.31 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6650
* chore(deps): update opentelemetry to 1.18.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6651


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.38...v1.65.51

## 1.65.38

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.38 -->

## What's Changed
### Other Changes
* Fix mocks for inaccessible method signature types by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6641
### Dependencies
* chore(deps): update dependency awssdk.sqs to 4.0.100.9 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6636
* chore(deps): update tunit to 1.65.31 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6637
* chore(deps): update dependency dompurify to v3.4.14 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6640
* chore(deps): update aspire to 13.5.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6638
* chore(deps): update dependency cliwrap to 3.10.5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6642


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.31...v1.65.38

## 1.65.31

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.31 -->

## What's Changed
### Other Changes
* Add xunit.v3.aot to speed comparison by @​campersau in
https://github.com/thomhurst/TUnit/pull/6621
* Suppress HTML reports for nested test runs by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6620
* Address xUnit speed comparison review feedback by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6623
* Fix docs TypeScript 7 compatibility by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6625
* Refresh docs npm dependencies by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6624
* Switch to SignalWire llms.txt plugin by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6627
* Remove single-test discovery copies by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6631
* Skip unused scheduler work for unconstrained suites by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6632
* Skip empty test registration work by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6628
* Skip absent hook pipelines by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6630
* Fix mocks with inaccessible constructor parameter types by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6635
### Dependencies
* chore(deps): update dependency awssdk.sqs to 4.0.100.8 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6608
* chore(deps): update tunit to 1.65.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6609
* chore(deps): update dependency testcontainers.postgresql to 4.14.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6612
* chore(deps): update dependency testcontainers.kafka to 4.14.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6611
* chore(deps): update dependency testcontainers.redis to 4.14.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6613
* chore(deps): update dependency microsoft.net.test.sdk to 18.9.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6614
* chore(deps): update xunit to v4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6616


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.0...v1.65.31

## 1.65.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.0 -->

## What's Changed
### Other Changes
* Report unexpected mock generation failures by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6605
* Process every GenerateMock attribute by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6606
* Support T.Mock() for static abstract interfaces by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6607
### Dependencies
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.303 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6586
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.303 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6587
* chore(deps): update microsoft.build to 18.9.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6585
* chore(deps): update dependency fsharp.core to 10.1.400 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6588
* chore(deps): update dependency microsoft.entityframeworkcore to
10.0.11 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6589
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.400 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6591
* chore(deps): update dependency dotnet-sdk to v10.0.400 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6590
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.400 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6592
* chore(deps): update dependency system.commandline to 2.0.11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6593
* chore(deps): update microsoft.extensions to 10.0.11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6595
* chore(deps): update microsoft.aspnetcore to 10.0.11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6594
* chore(deps): update tunit to 1.64.13 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6596
* chore(deps): update dependency nuget.protocol to 7.9.0 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6597
* chore(deps): update microsoft.extensions to 10.9.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6598
* chore(deps): update dependency polyfill to 11.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6601
* chore(deps): update dependency polyfill to 11.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6600
* chore(deps): update dependency
microsoft.testing.extensions.codecoverage to 18.10.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6602


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.64.13...v1.65.0

## 1.64.13

<!-- Release notes generated using configuration in .github/release.yml
at v1.64.13 -->

## What's Changed
### Other Changes
* Stabilize immediate WaitsFor assertion test by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6576
* fix: Allow Item.Member after HasSingleItem by @​SnakyBeaky in
https://github.com/thomhurst/TUnit/pull/6583
### Dependencies
* chore(deps): update tunit to 1.64.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6577
* chore(deps): update dependency nsubstitute to 6.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6580
* chore(deps): update dependency microsoft.playwright to 1.62.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6582
* chore(deps): update dependency microsoft.net.stringtools to 18.9.6 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6584

## New Contributors
* @​SnakyBeaky made their first contribution in
https://github.com/thomhurst/TUnit/pull/6583

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.64.6...v1.64.13

## 1.64.6

<!-- Release notes generated using configuration in .github/release.yml
at v1.64.6 -->

## What's Changed
### Other Changes
* Switch NuGet publishing to trusted publishing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6573
* Expose results directory through TestContext by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6575
* Fix outcome timeline overflow in HTML reports by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6574
### Dependencies
* chore(deps): update tunit to 1.64.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6570


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.64.0...v1.64.6

## 1.64.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.64.0 -->

## What's Changed
### Other Changes
* Honor cancellation tokens linked by custom test executors by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6565
* Fix linked cancellation from before-test hooks by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6568
* Add per-test execution cancellation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6569
### Dependencies
* chore(deps): update tunit to 1.63.25 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6559
* chore(deps): update dependency serialize-javascript to v7.1.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6561
* chore(deps): update dependency nsubstitute to 6.1.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6564
* chore(deps): bump mermaid from 11.15.0 to 11.16.1 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6563
* chore(deps): bump nanoid from 3.3.16 to 3.3.18 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6562


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.63.25...v1.64.0

## 1.63.25

<!-- Release notes generated using configuration in .github/release.yml
at v1.63.25 -->

## What's Changed
### Other Changes
* Fix Mermaid label contrast in dark mode by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6531
* Enhance matrix tests documentation by @​koryphaee in
https://github.com/thomhurst/TUnit/pull/6537
* fix: support nested Member after IsTypeOf by @​mvanhorn in
https://github.com/thomhurst/TUnit/pull/6540
* docs: Add documentation for TestContext.Parameters by @​thomhurst with
@​Copilot in https://github.com/thomhurst/TUnit/pull/6558
* fix: run event receivers on injected properties by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6556
### Dependencies
* chore(deps): update tunit to 1.63.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6526
* chore(deps): update dependency stackexchange.redis to 3.1.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6529
* chore(deps): update verify to 31.28.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6532
* chore(deps): update dependency stackexchange.redis to 3.1.3 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6541
* chore(deps): update dependency dompurify to v3.4.13 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6542
* chore(deps): update dependency rabbitmq.client to 7.2.2 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6546
* chore(deps): update dependency polyfill to 11.0.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6549
* chore(deps): update dependency polyfill to 11.0.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6548
* chore(deps): bump fast-uri from 3.1.4 to 3.1.5 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6545
* chore(deps): bump postcss from 8.5.22 to 8.5.25 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6547
* chore(deps): update dependency stackexchange.redis to 3.1.11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6550
* chore(deps): update dependency stackexchange.redis to 3.1.13 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6552

## New Contributors
* @​koryphaee made their first contribution in
https://github.com/thomhurst/TUnit/pull/6537

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.63.0...v1.63.25

## 1.63.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.63.0 -->

## What's Changed
### Other Changes
* fix(mocks): dispatch abstract indexers through the engine instead of
calling base by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6517
* feat(mocks): experimental compile-time internals access (#​6514 Tier
2) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6520
* feat(mocks): make the async-factory Returns alias available below
net9.0 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6518
* +semver:minor - feat(mocks): runtime auto-stubs for interfaces the
source generator cannot see by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6519
### Dependencies
* chore(deps): update tunit to 1.62.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6508
* chore(deps): update dependency mockolate to 3.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6512
* chore(deps): update dependency cliwrap to 3.10.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6513
* chore(deps): update dependency stackexchange.redis to 3.0.25 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6522
* chore(deps): update dependency brace-expansion to v5.0.9 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6523
* chore(deps): update dependency microsoft.build.utilities.core to v18
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6525


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.62.0...v1.63.0

## 1.62.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.62.0 -->

## What's Changed
### Other Changes
* fix(docs): make Mermaid lifecycle diagrams readable by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6485
* fix(mocks): strip nullable annotation from constructor dispatch
patterns by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6498
* fix(mocks): skip interfaces with inaccessible abstract members by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6502
* feat(mocks): accept an async factory in Returns() on async members by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6503
* fix(mocks): report TM006 instead of CS1729 for unsubclassable classes
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6501
* fix(mocks): emit the setup surface into the globally-imported
namespace by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6504
* fix(mocks): reference TUnit.Mocks once in snapshot test compilations
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6506
* fix(mocks): make generated identifier sanitization injective by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6507
### Dependencies
* chore(deps): update tunit to 1.61.38 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6479
* chore(deps): update dependency brace-expansion to v5.0.8 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6478
* chore(deps): update dependency cliwrap to 3.10.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6482
* chore(deps): bump postcss from 8.5.10 to 8.5.22 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6480
* chore(deps): update dependency fscheck to 3.3.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6486
* chore(deps): update dependency minimatch to v10.2.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6490
* chore(deps): update actions/stale action to v11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6496
* chore(deps): update microsoft.testing to 2.3.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6499
* chore(deps): update mstest to 4.3.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6500


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.38...v1.62.0

## 1.61.38

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.38 -->

## What's Changed
### Other Changes
* fix: apply 'unmanaged' constraint handling to remaining source
generators by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6474
* feat: expose data source attributes on TestContext by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6477
### Dependencies
* chore(deps): update tunit to 1.61.35 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6475


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.35...v1.61.38

## 1.61.35

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.35 -->

## What's Changed
### Other Changes
* fix(mocks): omit 'struct' constraint when type parameter has
'unmanaged' constraint by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6473
### Dependencies
* chore(deps): bump fast-uri from 3.1.2 to 3.1.4 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6466
* chore(deps): update tunit to 1.61.29 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6467
* chore(deps): update dependency verify.tool to v0.8.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6470
* chore(deps): update dependency docusaurus-plugin-llms to ^0.5.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6472


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.29...v1.61.35

## 1.61.29

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.29 -->

## What's Changed
### Other Changes
* perf: remove EnumerableAsyncProcessor dependency by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6465
### Dependencies
* chore(deps): bump shell-quote from 1.8.4 to 1.10.0 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6462
* chore(deps): bump body-parser from 1.20.5 to 1.20.6 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6461
* chore(deps): bump webpack-dev-server from 5.2.5 to 5.2.6 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6460
* chore(deps): update dependency microsoft.kiota.abstractions to v2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6464
* chore(deps): update tunit to 1.61.23 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6463


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.23...v1.61.29

## 1.61.23

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.23 -->

## What's Changed
### Other Changes
* fix(mocks): emit 'where T : default' for interface-constrained generic
methods by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6458
### Dependencies
* chore(deps): update tunit to 1.61.15 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6450
* chore(deps): update actions/checkout action to v7.0.1 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6453
* chore(deps): update verify to 31.26.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6454
* chore(deps): update verify to 31.27.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6457
* chore(deps): update react to ^19.2.8 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6459


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.15...v1.61.23

## 1.61.15

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.15 -->

## What's Changed
### Other Changes
* feat: Allow disabling the automatic html report upload to
upload-artifacts@​v7 by @​Crashdummyy in
https://github.com/thomhurst/TUnit/pull/6447
* fix: stop retrying artifact upload on non-retryable status codes by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6449
### Dependencies
* chore(deps): update tunit to 1.61.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6437
* chore(deps): update verify to 31.24.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6438
* chore(deps): update dependency
opentelemetry.instrumentation.aspnetcore to 1.17.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6440
* chore(deps): update verify to 31.25.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6442
* chore(deps): update dependency docusaurus-plugin-llms to ^0.5.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6443
* chore(deps): update opentelemetry to 1.17.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6441

## New Contributors
* @​Crashdummyy made their first contribution in
https://github.com/thomhurst/TUnit/pull/6447

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.0...v1.61.15

## 1.61.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.0 -->

## What's Changed
### Other Changes
* docs: revamp README with feature showcase and auto-updating benchmarks
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6430
* docs: align docs homepage messaging with revamped README by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6431
* fix(engine): emit ECMA-335 metadata-format type names in
TestMethodIdentifierProperty by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6433
* fix(benchmarks): make SetupTeardownTests JSON tests Native AOT
compatible by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6434
* Organize repository into conventional .NET layout by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6435
### Dependencies
* chore(deps): update dependency polyfill to v11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6418
* chore(deps): update dependency tunit.aspire to 1.6* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6419
* chore(deps): update tunit to 1.6* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6420
* chore(deps): update dependency polyfill to 11.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6421
* chore(deps): update dependency polyfill to 11.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6422
* chore(deps): update verify to 31.24.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6424
* chore(deps): update microsoft.build to 18.8.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6426
* chore(deps): update dependency microsoft.net.stringtools to 18.8.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6425
* chore(deps): update actions/setup-dotnet action to v6 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6427
* chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6429
* chore(deps): update opentelemetry to 1.17.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6432


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.60.0...v1.61.0

## 1.60.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.60.0 -->

## What's Changed
### Other Changes
* feat: cross-process test report aggregation — merged HTML report +
single GitHub summary by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6415
### Dependencies
* chore(deps): update tunit to 1.59.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6398
* chore(deps): update verify to 31.24.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6399
* chore(deps): update microsoft.testing to 2.3.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6401
* chore(deps): update mstest to 4.3.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6402
* chore(deps): update actions/setup-node action to v7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6403
* chore(deps): update dependency microsoft.net.test.sdk to 18.8.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6404
* chore(deps): update dependency microsoft.net.test.sdk to 18.8.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6405
* chore(deps): update dependency fsharp.core to 10.1.302 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6406
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.302 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6407
* chore(deps): update dependency microsoft.entityframeworkcore to
10.0.10 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6410
* chore(deps): update dependency dotnet-sdk to v10.0.302 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6409
* chore(deps): update dependency system.commandline to 2.0.10 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6412
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.302 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6411
* chore(deps): update microsoft.aspnetcore to 10.0.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6413
* chore(deps): update microsoft.extensions to 10.0.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6414
* chore(deps): update microsoft.extensions to 10.8.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6416
* chore(deps): update dependency polyfill to v11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6417


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.59.0...v1.60.0

## 1.59.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.59.0 -->

## What's Changed
### Other Changes
* Fix typed MethodDataSource provider instances by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6378
* Fix instance MethodDataSource isolation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6379
* fix(mocks): CS9262 in generated mock members on VS 17.14 (Roslyn 4.14)
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6392
* Remove EqualTo alias documentation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6396
* fix(aspnetcore): guard hosted-service stop against concurrent double
Host.StopAsync by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6397
* Add single-item assertion chaining by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6395
* Improve test framework migrations by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6381
* Add -f/--framework support to TUnit template with .NET Framework
handling by @​thomhurst with @​Copilot in
https://github.com/thomhurst/TUnit/pull/6262
### Dependencies
* chore(deps): update tunit to 1.58.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6351
* chore(deps): update dependency tunit.core to 1.58.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6352
* chore(deps): update dependency picomatch to v4.0.5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6354
* chore(deps): update dependency testcontainers.postgresql to 4.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6356
* chore(deps): update dependency testcontainers.redis to 4.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6357
* chore(deps): update dependency testcontainers.kafka to 4.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6355
* chore(deps): update dependency gitversion.tool to v6.8.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6359
* chore(deps): update dependency typescript to v7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6372
* chore(deps): update mstest to 4.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6374
* chore(deps): update dependency messagepack to 3.1.8 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6376
* chore(deps): update dependency opentelemetry.instrumentation.runtime
to 1.16.0 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6380
* chore(deps): update dependency vogen to 8.0.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6382
* chore(deps): update dependency gitversion.tool to v6.8.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6384
* chore(deps): update dependency npgsql.entityframeworkcore.postgresql
to 10.0.3 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6385
* chore(deps): update docusaurus to v3.10.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6386
* chore(deps): update dependency stackexchange.redis to 3.0.17 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6387
* chore(deps): update dependency dompurify to v3.4.12 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6389
* chore(deps): update dependency svgo to v4.0.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6390
* chore(deps): update dependency nsubstitute to v6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6394
* chore(deps): update verify to 31.24.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6367
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6369


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.58.0...v1.59.0

## 1.58.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.58.0 -->

## What's Changed
### Other Changes
* feat(aspire): opt-in live forwarding of resource logs into test output
(#​6341) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6345
* fix(aspire): fail fast on Finished-state crashes during startup
(#​6342) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6346
* fix(engine): keep per-test timeout token source alive through teardown
(#​6339) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6349
* feat(aspire): resource-diagnostics helpers + retained log buffer
(#​6343) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6350
* feat(aspire): surface exception detail in routed OTLP logs (#​6347) by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6348
### Dependencies
* chore(deps): update tunit to 1.57.17 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6344


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.57.17...v1.58.0

## 1.57.17

<!-- Release notes generated using configuration in .github/release.yml
at v1.57.17 -->

## What's Changed
### Other Changes
* fix(engine): reset test cancellation token before After hooks on
timeout path (#​6339) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6340
### Dependencies
* chore(deps): update tunit to 1.57.14 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6336


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.57.14...v1.57.17

## 1.57.14

<!-- Release notes generated using configuration in .github/release.yml
at v1.57.14 -->

## What's Changed
### Other Changes
* fix(engine): apply --treenode-filter to --list-tests by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6334
* feat(aspire): dump resource error logs on test failure + warn on
missing telemetry wiring by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6323
### Dependencies
* chore(deps): update dependency stackexchange.redis to 3.0.11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6324
* chore(deps): update tunit to 1.57.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6322
* chore(deps): update dependency brace-expansion to v5.0.7 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6326
* chore(deps): update dependency polyfill to 10.11.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6327
* chore(deps): update dependency polyfill to 10.11.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6329
* chore(deps): update dependency polyfill to 10.11.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6330
* chore(deps): update dependency polyfill to 10.11.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6331
* chore(deps): update dependency serialize-javascript to v7.0.7 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6333
* chore(deps): update dependency gitversion.tool to v6.8.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6335


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.57.0...v1.57.14

## 1.57.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.57.0 -->

## What's Changed
### Other Changes
* perf(sourcegen): consolidate per-file ModuleInitializers into merged
.cctor (#​6226) by @​thomh…

This branch was successfully deployed

1 active deployment
Pull Requests — 3819819d Deployed Sep 11, 2026 by thomhurst via modularpipeline (ubuntu-latest) #19184
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant